package com.softao.ming.gde.core.model;

import java.io.File;

/**
 * Represents a bundle. A GDE project contains several bundles.
 */
public interface IBundleModel {
	/**
	 * @return the key of this bundle
	 */
	public IBundleModelKey getKey();
	
	/**
	 * @return jar file or directory where the bundle lies in
	 */
	public File getContainerFile();
	
	/**
	 * @return <code>build.properties</code> file
	 */
	public IBundleBuildFile getBuildFile();
	
	/**
	 * @return <code>MANIFEST.MF</code> file
	 */
	public IBundleManifestFile getManifestFile();
	
	/**
	 * @return <code>gwt.plugin.xml</code> file
	 */
	public IBundleGwtPluginFile getGwtPluginFile();
	
	/**
	 * @return <code>plugin.xml</code> file
	 */
	public IBundlePluginFile getPluginFile();
	
	/**
	 * @return <code>true</code> if the bundle is a project
	 */
	public boolean isGdeProject();
}
